! function(t, e) {
	"object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define &&
		define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e()
}(this, (function() {
	"use strict";
	var t = 1e3,
		e = 6e4,
		n = 36e5,
		r = "millisecond",
		i = "second",
		s = "minute",
		u = "hour",
		a = "day",
		o = "week",
		c = "month",
		f = "quarter",
		h = "year",
		d = "date",
		l = "Invalid Date",
		$ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,
		y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,
		M = {
			name: "en",
			weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
			months: "January_February_March_April_May_June_July_August_September_October_November_December"
				.split("_"),
			ordinal: function(t) {
				var e = ["th", "st", "nd", "rd"],
					n = t % 100;
				return "[" + t + (e[(n - 20) % 10] || e[n] || e[0]) + "]"
			}
		},
		m = function(t, e, n) {
			var r = String(t);
			return !r || r.length >= e ? t : "" + Array(e + 1 - r.length).join(n) + t
		},
		v = {
			s: m,
			z: function(t) {
				var e = -t.utcOffset(),
					n = Math.abs(e),
					r = Math.floor(n / 60),
					i = n % 60;
				return (e <= 0 ? "+" : "-") + m(r, 2, "0") + ":" + m(i, 2, "0")
			},
			m: function t(e, n) {
				if (e.date() < n.date()) return -t(n, e);
				var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),
					i = e.clone().add(r, c),
					s = n - i < 0,
					u = e.clone().add(r + (s ? -1 : 1), c);
				return +(-(r + (n - i) / (s ? i - u : u - i)) || 0)
			},
			a: function(t) {
				return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)
			},
			p: function(t) {
				return {
					M: c,
					y: h,
					w: o,
					d: a,
					D: d,
					h: u,
					m: s,
					s: i,
					ms: r,
					Q: f
				} [t] || String(t || "").toLowerCase().replace(/s$/, "")
			},
			u: function(t) {
				return void 0 === t
			}
		},
		g = "en",
		D = {};
	D[g] = M;
	var p = "$isDayjsObject",
		S = function(t) {
			return t instanceof _ || !(!t || !t[p])
		},
		w = function t(e, n, r) {
			var i;
			if (!e) return g;
			if ("string" == typeof e) {
				var s = e.toLowerCase();
				D[s] && (i = s), n && (D[s] = n, i = s);
				var u = e.split("-");
				if (!i && u.length > 1) return t(u[0])
			} else {
				var a = e.name;
				D[a] = e, i = a
			}
			return !r && i && (g = i), i || !r && g
		},
		O = function(t, e) {
			if (S(t)) return t.clone();
			var n = "object" == typeof e ? e : {};
			return n.date = t, n.args = arguments, new _(n)
		},
		b = v;
	b.l = w, b.i = S, b.w = function(t, e) {
		return O(t, {
			locale: e.$L,
			utc: e.$u,
			x: e.$x,
			$offset: e.$offset
		})
	};
	var _ = function() {
			function M(t) {
				this.$L = w(t.locale, null, !0), this.parse(t), this.$x = this.$x || t.x || {}, this[p] = !0
			}
			var m = M.prototype;
			return m.parse = function(t) {
				this.$d = function(t) {
					var e = t.date,
						n = t.utc;
					if (null === e) return new Date(NaN);
					if (b.u(e)) return new Date;
					if (e instanceof Date) return new Date(e);
					if ("string" == typeof e && !/Z$/i.test(e)) {
						var r = e.match($);
						if (r) {
							var i = r[2] - 1 || 0,
								s = (r[7] || "0").substring(0, 3);
							return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[
								6] || 0, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[
								6] || 0, s)
						}
					}
					return new Date(e)
				}(t), this.init()
			}, m.init = function() {
				var t = this.$d;
				this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t
					.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(),
					this.$ms = t.getMilliseconds()
			}, m.$utils = function() {
				return b
			}, m.isValid = function() {
				return !(this.$d.toString() === l)
			}, m.isSame = function(t, e) {
				var n = O(t);
				return this.startOf(e) <= n && n <= this.endOf(e)
			}, m.isAfter = function(t, e) {
				return O(t) < this.startOf(e)
			}, m.isBefore = function(t, e) {
				return this.endOf(e) < O(t)
			}, m.$g = function(t, e, n) {
				return b.u(t) ? this[e] : this.set(n, t)
			}, m.unix = function() {
				return Math.floor(this.valueOf() / 1e3)
			}, m.valueOf = function() {
				return this.$d.getTime()
			}, m.startOf = function(t, e) {
				var n = this,
					r = !!b.u(e) || e,
					f = b.p(t),
					l = function(t, e) {
						var i = b.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n);
						return r ? i : i.endOf(a)
					},
					$ = function(t, e) {
						return b.w(n.toDate()[t].apply(n.toDate("s"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999])
							.slice(e)), n)
					},
					y = this.$W,
					M = this.$M,
					m = this.$D,
					v = "set" + (this.$u ? "UTC" : "");
				switch (f) {
					case h:
						return r ? l(1, 0) : l(31, 11);
					case c:
						return r ? l(1, M) : l(0, M + 1);
					case o:
						var g = this.$locale().weekStart || 0,
							D = (y < g ? y + 7 : y) - g;
						return l(r ? m - D : m + (6 - D), M);
					case a:
					case d:
						return $(v + "Hours", 0);
					case u:
						return $(v + "Minutes", 1);
					case s:
						return $(v + "Seconds", 2);
					case i:
						return $(v + "Milliseconds", 3);
					default:
						return this.clone()
				}
			}, m.endOf = function(t) {
				return this.startOf(t, !1)
			}, m.$set = function(t, e) {
				var n, o = b.p(t),
					f = "set" + (this.$u ? "UTC" : ""),
					l = (n = {}, n[a] = f + "Date", n[d] = f + "Date", n[c] = f + "Month", n[h] = f +
						"FullYear", n[u] = f + "Hours", n[s] = f + "Minutes", n[i] = f + "Seconds", n[r] =
						f + "Milliseconds", n)[o],
					$ = o === a ? this.$D + (e - this.$W) : e;
				if (o === c || o === h) {
					var y = this.clone().set(d, 1);
					y.$d[l]($), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d
				} else l && this.$d[l]($);
				return this.init(), this
			}, m.set = function(t, e) {
				return this.clone().$set(t, e)
			}, m.get = function(t) {
				return this[b.p(t)]()
			}, m.add = function(r, f) {
				var d, l = this;
				r = Number(r);
				var $ = b.p(f),
					y = function(t) {
						var e = O(l);
						return b.w(e.date(e.date() + Math.round(t * r)), l)
					};
				if ($ === c) return this.set(c, this.$M + r);
				if ($ === h) return this.set(h, this.$y + r);
				if ($ === a) return y(1);
				if ($ === o) return y(7);
				var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[$] || 1,
					m = this.$d.getTime() + r * M;
				return b.w(m, this)
			}, m.subtract = function(t, e) {
				return this.add(-1 * t, e)
			}, m.format = function(t) {
				var e = this,
					n = this.$locale();
				if (!this.isValid()) return n.invalidDate || l;
				var r = t || "YYYY-MM-DDTHH:mm:ssZ",
					i = b.z(this),
					s = this.$H,
					u = this.$m,
					a = this.$M,
					o = n.weekdays,
					c = n.months,
					f = n.meridiem,
					h = function(t, n, i, s) {
						return t && (t[n] || t(e, r)) || i[n].slice(0, s)
					},
					d = function(t) {
						return b.s(s % 12 || 12, t, "0")
					},
					$ = f || function(t, e, n) {
						var r = t < 12 ? "AM" : "PM";
						return n ? r.toLowerCase() : r
					};
				return r.replace(y, (function(t, r) {
					return r || function(t) {
						switch (t) {
							case "YY":
								return String(e.$y).slice(-2);
							case "YYYY":
								return b.s(e.$y, 4, "0");
							case "M":
								return a + 1;
							case "MM":
								return b.s(a + 1, 2, "0");
							case "MMM":
								return h(n.monthsShort, a, c, 3);
							case "MMMM":
								return h(c, a);
							case "D":
								return e.$D;
							case "DD":
								return b.s(e.$D, 2, "0");
							case "d":
								return String(e.$W);
							case "dd":
								return h(n.weekdaysMin, e.$W, o, 2);
							case "ddd":
								return h(n.weekdaysShort, e.$W, o, 3);
							case "dddd":
								return o[e.$W];
							case "H":
								return String(s);
							case "HH":
								return b.s(s, 2, "0");
							case "h":
								return d(1);
							case "hh":
								return d(2);
							case "a":
								return $(s, u, !0);
							case "A":
								return $(s, u, !1);
							case "m":
								return String(u);
							case "mm":
								return b.s(u, 2, "0");
							case "s":
								return String(e.$s);
							case "ss":
								return b.s(e.$s, 2, "0");
							case "SSS":
								return b.s(e.$ms, 3, "0");
							case "Z":
								return i
						}
						return null
					}(t) || i.replace(":", "")
				}))
			}, m.utcOffset = function() {
				return 15 * -Math.round(this.$d.getTimezoneOffset() / 15)
			}, m.diff = function(r, d, l) {
				var $, y = this,
					M = b.p(d),
					m = O(r),
					v = (m.utcOffset() - this.utcOffset()) * e,
					g = this - m,
					D = function() {
						return b.m(y, m)
					};
				switch (M) {
					case h:
						$ = D() / 12;
						break;
					case c:
						$ = D();
						break;
					case f:
						$ = D() / 3;
						break;
					case o:
						$ = (g - v) / 6048e5;
						break;
					case a:
						$ = (g - v) / 864e5;
						break;
					case u:
						$ = g / n;
						break;
					case s:
						$ = g / e;
						break;
					case i:
						$ = g / t;
						break;
					default:
						$ = g
				}
				return l ? $ : b.a($)
			}, m.daysInMonth = function() {
				return this.endOf(c).$D
			}, m.$locale = function() {
				return D[this.$L]
			}, m.locale = function(t, e) {
				if (!t) return this.$L;
				var n = this.clone(),
					r = w(t, e, !0);
				return r && (n.$L = r), n
			}, m.clone = function() {
				return b.w(this.$d, this)
			}, m.toDate = function() {
				return new Date(this.valueOf())
			}, m.toJSON = function() {
				return this.isValid() ? this.toISOString() : null
			}, m.toISOString = function() {
				return this.$d.toISOString()
			}, m.toString = function() {
				return this.$d.toUTCString()
			}, M
		}(),
		k = _.prototype;
	return O.prototype = k, [
		["$ms", r],
		["$s", i],
		["$m", s],
		["$H", u],
		["$W", a],
		["$M", c],
		["$y", h],
		["$D", d]
	].forEach((function(t) {
		k[t[1]] = function(e) {
			return this.$g(e, t[0], t[1])
		}
	})), O.extend = function(t, e) {
		return t.$i || (t(e, _, O), t.$i = !0), O
	}, O.locale = w, O.isDayjs = S, O.unix = function(t) {
		return O(1e3 * t)
	}, O.en = D[g], O.Ls = D, O.p = {}, O
}));